package atguigu.com.login.VO;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

@Data
public class ResultVO {
    private boolean isok;
    private Integer code;
    private String message;
    private Map<String,Object>data=new HashMap<>();

    private ResultVO() {
    }//你这里一给其它地方就不能new对象了，只能在这个类里面new
    public static ResultVO ok(){
        ResultVO r=new ResultVO();
        r.setCode(ResultStatus.SUCCESS);
        r.setIsok(true);
        return r;
    }
    public static ResultVO error(){
        ResultVO r=new ResultVO();
        r.setCode(ResultStatus.ERROR);
        r.setIsok(false);
        return r;
    }
    //这是12.9改造加的方法，通过枚举类来对code和message来赋值。后面鼓励使用这种方式。
    public static ResultVO setByResponseEnum(ResponseEnum responseEnum){
        ResultVO r=new ResultVO();
        r.setCode(responseEnum.getCode());
        r.setMessage(responseEnum.getMessage());
        r.setIsok(false);
        return r;
    }
    //这种方法就是提供了一个你自定义code的方法。
    public static ResultVO CreateNewObjectAndSetCode(Integer code){
        ResultVO r=new ResultVO();
        r.setCode(code);
        r.setIsok(true);
        return r;
    }
    public ResultVO Msg(String msg){
        this.setMessage(msg);
        return this;
    }
    public ResultVO Data(String key,Object value){
        this.data.put(key,value);
        return this;
    }
    public ResultVO Data(Map<String,Object>map){
        this.data=map;
        return this;
    }//我想重新在这个类外部完成赋值
}
